#pragma once

#include <chrono>
#include <string>

namespace AsyncLogger {

	class Timestamp {
	public:
		explicit Timestamp() :timestamp_(getCurrTimestamp()) {}

		/// <summary>
		/// 获取当前时间的时间戳
		/// </summary>
		/// <returns></returns>
		static long long getCurrTimestamp();

		/// <summary>
		/// 获取格式化的时间字符串 year-mon-day hour::min::secs millisecs
		/// </summary>
		/// <returns></returns>
		static std::string getFormatDate();

		/// <summary>
		/// 获取Timestamp创建时的时间戳
		/// </summary>
		/// <returns></returns>
		const long long& getTimestamp();
	private:
		long long timestamp_;
	};
}